Erkunden Sie den Frontend Periodic Sync Manager: ein umfassender Ansatz zur Verwaltung von Hintergrundaufgaben, Leistungssteigerung und Optimierung der Benutzererfahrung in modernen Webanwendungen. Mit Best Practices.
Frontend Periodic Sync Manager: Hintergrundaufgabenkoordination meistern
In der dynamischen Welt der Webentwicklung ist die Gewährleistung nahtloser Benutzererfahrungen von größter Bedeutung. Moderne Webanwendungen erfordern oft die Durchführung von Hintergrundaufgaben, wie z. B. Datensynchronisierung, Inhaltsaktualisierungen und geplante Benachrichtigungen, ohne den Arbeitsablauf des Benutzers zu unterbrechen. Der Frontend Periodic Sync Manager bietet eine robuste Lösung zur effizienten und effektiven Koordination dieser Hintergrundaufgaben. Dieser umfassende Leitfaden beleuchtet das Konzept der periodischen Synchronisierung, ihre Vorteile, Implementierungsstrategien und Best Practices für den Aufbau leistungsstarker Webanwendungen.
Periodische Synchronisierung verstehen
Die periodische Synchronisierung ermöglicht es Webanwendungen, insbesondere Progressive Web Apps (PWAs), Daten in regelmäßigen Abständen im Hintergrund zu synchronisieren. Diese Fähigkeit ist entscheidend, um Inhalte aktuell zu halten, Offline-Funktionalität bereitzustellen und eine reaktionsschnelle Benutzererfahrung zu liefern, selbst in Umgebungen mit intermittierender Netzwerkverbindung. Die Periodic Background Synchronization API, Teil der Service Worker API-Suite, ermöglicht es Entwicklern, Aufgaben zu planen, die unabhängig vom Haupt-Thread ausgeführt werden, wodurch die Anwendungsleistung minimal beeinträchtigt wird.
Vorteile der periodischen Synchronisierung
- Verbesserte Benutzererfahrung: Halten Sie Inhalte frisch und relevant und bieten Sie den Benutzern die neuesten Informationen ohne manuelle Aktualisierungen.
- Offline-Funktionalität: Ermöglichen Sie Benutzern den Zugriff auf und die Interaktion mit zwischengespeicherten Daten, selbst wenn sie offline sind, wodurch die Benutzerfreundlichkeit der Anwendung unter verschiedenen Netzwerkbedingungen verbessert wird.
- Erhöhte Leistung: Verlagern Sie die Datensynchronisierung und andere ressourcenintensive Aufgaben in den Hintergrund, wodurch die Belastung des Haupt-Threads reduziert und die allgemeine Reaktionsfähigkeit der Anwendung verbessert wird.
- Reduzierter Datenverbrauch: Optimieren Sie die Datensynchronisierung, indem Sie nur notwendige Updates übertragen, wodurch der Bandbreitenverbrauch und die damit verbundenen Kosten minimiert werden.
- Erhöhtes Engagement: Liefern Sie zeitnahe Benachrichtigungen und Updates, um Benutzer informiert und engagiert mit der Anwendung zu halten.
Implementierung des Frontend Periodic Sync Managers
Die Implementierung eines Frontend Periodic Sync Managers umfasst mehrere wichtige Schritte, darunter die Registrierung eines Service Workers, die Anforderung von Berechtigungen, die Planung periodischer Synchronisierungsereignisse und die Abwicklung des Synchronisierungsprozesses. Nachfolgend finden Sie detaillierte Anweisungen und Codebeispiele, die Sie durch den Implementierungsprozess führen.
Schritt 1: Registrierung eines Service Workers
Der erste Schritt ist die Registrierung eines Service Workers, der als Proxy zwischen der Webanwendung und dem Netzwerk fungiert. Der Service Worker fängt Netzwerkanfragen ab, speichert Assets im Cache und verwaltet Hintergrundaufgaben. Um einen Service Worker zu registrieren, fügen Sie den folgenden Code in Ihre Haupt-JavaScript-Datei ein:
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js')
.then(registration => {
console.log('Service Worker registered with scope:', registration.scope);
})
.catch(error => {
console.error('Service Worker registration failed:', error);
});
}
Schritt 2: Berechtigungen anfordern
Bevor Sie periodische Synchronisierungsereignisse planen, müssen Sie die erforderlichen Berechtigungen vom Benutzer anfordern. Die `periodicSync`-Berechtigung ermöglicht es dem Service Worker, Hintergrund-Synchronisierungsaufgaben auszuführen. Fügen Sie den folgenden Code in Ihre Service Worker-Datei ein:
self.addEventListener('activate', async event => {
try {
const status = await navigator.permissions.query({ name: 'periodic-background-sync' });
if (status.state === 'granted') {
console.log('Periodic Background Sync permission granted.');
} else {
console.warn('Periodic Background Sync permission not granted.');
}
} catch (error) {
console.error('Error querying Periodic Background Sync permission:', error);
}
});
Schritt 3: Planen periodischer Synchronisierungsereignisse
Sobald Sie die erforderlichen Berechtigungen erhalten haben, können Sie periodische Synchronisierungsereignisse mithilfe der `register`-Methode des `periodicSync`-Objekts planen. Diese Methode benötigt einen eindeutigen Tag-Namen und ein optionales Options-Objekt, das das minimale Intervall zwischen den Synchronisierungsereignissen angibt. Fügen Sie den folgenden Code in Ihre Service Worker-Datei ein:
self.addEventListener('activate', async event => {
// ... (previous permission check)
try {
await self.registration.periodicSync.register('content-sync', {
minInterval: 24 * 60 * 60 * 1000, // 24 hours
});
console.log('Periodic Sync registered successfully with tag: content-sync');
} catch (error) {
console.error('Error registering Periodic Sync:', error);
}
});
In diesem Beispiel wird der Tag `content-sync` verwendet, um das periodische Synchronisierungsereignis zu identifizieren, und die Option `minInterval` ist auf 24 Stunden eingestellt, um sicherzustellen, dass die Synchronisierungsaufgabe mindestens einmal täglich ausgeführt wird.
Schritt 4: Abwicklung des Synchronisierungsprozesses
Wenn ein periodisches Synchronisierungsereignis ausgelöst wird, empfängt der Service Worker ein `periodicsync`-Ereignis. Sie können dieses Ereignis behandeln, indem Sie einen Event Listener zu Ihrer Service Worker-Datei hinzufügen. Innerhalb des Event Listeners können Sie die notwendigen Synchronisierungsaufgaben ausführen, wie z. B. das Abrufen von Daten vom Server, das Aktualisieren des Caches und das Anzeigen von Benachrichtigungen.
self.addEventListener('periodicsync', event => {
if (event.tag === 'content-sync') {
event.waitUntil(syncContent());
}
});
async function syncContent() {
try {
const response = await fetch('/api/content');
const content = await response.json();
// Store content in cache (e.g., using Cache API or IndexedDB)
const cache = await caches.open('content-cache');
await cache.put('/content-data', new Response(JSON.stringify(content)));
console.log('Content synchronized successfully.');
// Optional: Display a notification to the user
self.registration.showNotification('Content Updated', {
body: 'New content is available!',
icon: '/icon.png'
});
} catch (error) {
console.error('Error synchronizing content:', error);
// Handle error (e.g., retry later)
}
}
In diesem Beispiel ruft die Funktion `syncContent` die neuesten Inhalte vom Server ab, speichert sie im Cache und zeigt dem Benutzer eine Benachrichtigung an. Die Methode `event.waitUntil` stellt sicher, dass der Service Worker aktiv bleibt, bis die Synchronisierungsaufgabe abgeschlossen ist.
Best Practices für den Frontend Periodic Sync Manager
Um die Effektivität Ihres Frontend Periodic Sync Managers zu maximieren, beachten Sie die folgenden Best Practices:
- Datensynchronisierung optimieren: Minimieren Sie die während der Synchronisierung übertragene Datenmenge, indem Sie nur notwendige Updates abrufen und effiziente Datenkomprimierungstechniken verwenden.
- Fehlerbehandlung implementieren: Implementieren Sie eine robuste Fehlerbehandlung, um Netzwerkfehler, Serverfehler und andere unerwartete Probleme elegant zu behandeln. Verwenden Sie Wiederholungsmechanismen und exponentielle Backoff-Strategien, um sicherzustellen, dass Synchronisierungsaufgaben schließlich erfolgreich sind.
- Benutzereinstellungen respektieren: Ermöglichen Sie Benutzern, die Häufigkeit und den Zeitpunkt von Synchronisierungsaufgaben zu steuern. Bieten Sie Optionen zum Deaktivieren der periodischen Synchronisierung oder zum Anpassen des Synchronisierungsintervalls basierend auf ihren Präferenzen.
- Leistung überwachen: Überwachen Sie die Leistung Ihres Frontend Periodic Sync Managers, um Leistungsengpässe zu identifizieren und zu beheben. Verwenden Sie Browser-Entwicklertools und Analyseplattformen, um Synchronisierungszeiten, Fehlerraten und Ressourcenverbrauch zu verfolgen.
- Gründlich testen: Testen Sie Ihren Frontend Periodic Sync Manager unter verschiedenen Netzwerkbedingungen, einschließlich Offline-Umgebungen, um sicherzustellen, dass er korrekt funktioniert und eine nahtlose Benutzererfahrung bietet.
- Batterielebensdauer berücksichtigen: Achten Sie auf den Batterieverbrauch, insbesondere auf mobilen Geräten. Vermeiden Sie häufige Synchronisierungsintervalle, die den Akku schnell entladen können.
Fortgeschrittene Techniken und Überlegungen
Verwendung der Background Fetch API
Für das Herunterladen großer Dateien oder Assets im Hintergrund sollten Sie die Background Fetch API in Betracht ziehen. Diese API ermöglicht es Ihnen, Downloads im Hintergrund zu initiieren und zu verwalten, selbst wenn der Benutzer den Browser schließt oder die Seite verlässt. Die Background Fetch API bietet Fortschrittsaktualisierungen und Benachrichtigungen, sodass Sie Benutzer über den Download-Status informieren können.
Integration mit Push-Benachrichtigungen
Kombinieren Sie die periodische Synchronisierung mit Push-Benachrichtigungen, um Benutzern zeitnahe Updates und Benachrichtigungen zu liefern, selbst wenn die Anwendung nicht im Vordergrund läuft. Verwenden Sie die periodische Synchronisierung, um nach neuen Inhalten oder Updates zu suchen, und lösen Sie dann eine Push-Benachrichtigung aus, um den Benutzer zu informieren. Beachten Sie die Benutzereinstellungen und vermeiden Sie das Senden übermäßiger oder irrelevanter Benachrichtigungen.
Datenkonflikte behandeln
Bei der Synchronisierung von Daten zwischen Client und Server ist es wichtig, potenzielle Datenkonflikte zu behandeln. Implementieren Sie Konfliktlösungsstrategien, wie z. B. Last-Write-Wins oder Optimistic Locking, um Datenkonsistenz und -integrität zu gewährleisten. Stellen Sie Mechanismen bereit, mit denen Benutzer Konflikte bei Bedarf manuell lösen können.
Internationalisierung und Lokalisierung
Berücksichtigen Sie bei der Entwicklung von Anwendungen für ein globales Publikum Internationalisierung und Lokalisierung. Stellen Sie sicher, dass Ihr Frontend Periodic Sync Manager mehrere Sprachen und Regionen unterstützt. Verwenden Sie Ressourcendateien oder Übersetzungsdienste, um lokalisierte Inhalte und Benachrichtigungen bereitzustellen.
Beispiel: Umgang mit Zeitzonen bei der Terminplanung Bei der Planung zeitkritischer Aufgaben ist es entscheidend, verschiedene Zeitzonen zu berücksichtigen. Eine einfache Lösung besteht darin, alle Zeiten in UTC zu speichern und sie innerhalb der Anwendung in die lokale Zeit des Benutzers umzuwandeln. Das `Date`-Objekt von JavaScript, zusammen mit Bibliotheken wie Moment.js oder date-fns, kann diese Konvertierungen erleichtern.
// Store the scheduled time in UTC
const scheduledTimeUTC = '2024-10-27T10:00:00Z';
// Convert to the user's local time
const scheduledTimeLocal = moment.utc(scheduledTimeUTC).local().format('YYYY-MM-DD HH:mm:ss');
console.log('Scheduled Time (UTC):', scheduledTimeUTC);
console.log('Scheduled Time (Local):', scheduledTimeLocal);
Dieser Codeausschnitt zeigt, wie Moment.js verwendet wird, um eine UTC-Zeit in die lokale Zeit des Benutzers umzuwandeln, wodurch sichergestellt wird, dass geplante Aufgaben unabhängig vom Standort des Benutzers zur richtigen Zeit ausgeführt werden. Erwägen Sie die Verwendung ähnlicher Methoden in Ihrer Implementierung der periodischen Synchronisierung, um zeitkritische Updates genau zu behandeln.
Praxisbeispiele
Nachrichten-Aggregator-App
Eine Nachrichten-Aggregator-App kann den Frontend Periodic Sync Manager verwenden, um die neuesten Nachrichtenartikel aus verschiedenen Quellen im Hintergrund zu synchronisieren. Die App kann periodische Synchronisierungsereignisse planen, um neue Artikel abzurufen und den Cache zu aktualisieren, wodurch sichergestellt wird, dass Benutzer immer Zugriff auf die neuesten Nachrichten haben, auch wenn sie offline sind. Push-Benachrichtigungen können verwendet werden, um Benutzer zu benachrichtigen, wenn neue Artikel verfügbar sind.
E-Commerce-App
Eine E-Commerce-App kann den Frontend Periodic Sync Manager verwenden, um Produktkataloge, Preise und Lagerbestände im Hintergrund zu synchronisieren. Die App kann periodische Synchronisierungsereignisse planen, um die neuesten Produktdaten abzurufen und den Cache zu aktualisieren, wodurch sichergestellt wird, dass Benutzer immer Zugriff auf genaue Produktinformationen haben. Push-Benachrichtigungen können verwendet werden, um Benutzer zu benachrichtigen, wenn neue Produkte hinzugefügt werden oder wenn Preise reduziert werden.
Social-Media-App
Eine Social-Media-App kann den Frontend Periodic Sync Manager verwenden, um neue Beiträge, Kommentare und Likes im Hintergrund zu synchronisieren. Die App kann periodische Synchronisierungsereignisse planen, um die neuesten Social-Media-Daten abzurufen und den Cache zu aktualisieren, wodurch sichergestellt wird, dass Benutzer immer Zugriff auf die neuesten Inhalte haben. Push-Benachrichtigungen können verwendet werden, um Benutzer zu benachrichtigen, wenn sie neue Kommentare oder Likes erhalten.
Aufgabenverwaltungs-App
Eine Aufgabenverwaltungsanwendung, die von weltweit verteilten Teams genutzt wird, kann die periodische Synchronisierung nutzen, um sicherzustellen, dass Aufgabenlisten immer auf dem neuesten Stand sind. Beispielsweise schließt ein Teammitglied in Tokio eine Aufgabe um 9:00 Uhr JST ab. Der periodische Sync Manager stellt sicher, dass diese Aktualisierung auf den Geräten der Teammitglieder in London, New York und Sydney innerhalb eines angemessenen Zeitrahmens widergespiegelt wird, unter Berücksichtigung unterschiedlicher Netzwerkbedingungen. Die Synchronisierungshäufigkeit könnte basierend auf Benutzeraktivität oder Netzwerkverfügbarkeit angepasst werden, um den Akkuverbrauch und den Datenverbrauch zu optimieren.
Tools und Bibliotheken
- Workbox: Eine Sammlung von Bibliotheken und Tools, die die Entwicklung von PWAs, einschließlich Service Workern und periodischer Synchronisierung, vereinfachen. Workbox bietet High-Level-APIs und Abstraktionen, die die Verwaltung von Caching, Routing und Hintergrundaufgaben erleichtern.
- PWA Builder: Ein Tool, das Ihnen hilft, Ihre bestehende Webanwendung in eine PWA umzuwandeln. PWA Builder generiert automatisch eine Service Worker- und Manifestdatei und bietet Anleitungen zur Implementierung von Best Practices für PWAs.
- Lighthouse: Ein Auditing-Tool, das die Leistung, Zugänglichkeit und SEO Ihrer Webanwendung analysiert. Lighthouse gibt Empfehlungen zur Verbesserung der Qualität und Leistung Ihrer Anwendung.
Fazit
Der Frontend Periodic Sync Manager ist ein leistungsstarkes Tool zum Erstellen hochleistungsfähiger Webanwendungen, die eine nahtlose Benutzererfahrung bieten, selbst in Umgebungen mit intermittierender Netzwerkverbindung. Durch die Implementierung der periodischen Synchronisierung können Sie Inhalte aktuell und relevant halten, Offline-Funktionalität bereitstellen und die allgemeine Reaktionsfähigkeit der Anwendung verbessern. Indem Sie die in diesem Leitfaden beschriebenen Best Practices befolgen, können Sie die Effektivität Ihres Frontend Periodic Sync Managers maximieren und Ihrem globalen Publikum außergewöhnliche Benutzererfahrungen bieten.Zusammenfassend lässt sich sagen, dass der Frontend Periodic Sync Manager nicht nur eine technische Implementierung ist; er ist ein strategischer Ansatz zur Verbesserung der Benutzerbindung, zur Bereitstellung von Offline-Unterstützung und zur Optimierung der Datennutzung. Durch das Verständnis seiner Prinzipien und die Anwendung von Best Practices können Entwickler wirklich globale Webanwendungen erstellen, die bei Benutzern weltweit Anklang finden.
FAQ
Was passiert, wenn der Benutzer die Berechtigung für die periodische Hintergrundsynchronisierung nicht erteilt?
Wenn der Benutzer die Berechtigung nicht erteilt, löst die `register`-Methode einen Fehler aus. Sie sollten diesen Fehler elegant behandeln, den Benutzer darüber informieren, dass die Funktion ohne die Berechtigung nicht funktioniert, und gegebenenfalls Anweisungen zur Erteilung der Berechtigung in den Browsereinstellungen geben.
Wie oft sollte ich periodische Synchronisierungsereignisse planen?
Die Häufigkeit der Synchronisierungsereignisse hängt von den spezifischen Anforderungen Ihrer Anwendung und der Wichtigkeit ab, Daten aktuell zu halten. Berücksichtigen Sie die Auswirkungen auf die Akkulaufzeit und den Datenverbrauch. Beginnen Sie mit einem längeren Intervall (z. B. 24 Stunden) und reduzieren Sie es bei Bedarf schrittweise, während Sie die Leistung und das Benutzerfeedback überwachen. Denken Sie daran, dass `minInterval` ein *Minimum* ist – der Browser kann je nach Benutzeraktivität und Gerätezustand seltener synchronisieren.
Kann ich die periodische Synchronisierung ohne einen Service Worker verwenden?
Nein, die periodische Synchronisierung ist eine Funktion der Service Worker API und erfordert, dass ein Service Worker registriert und aktiv ist.
Wie unterscheidet sich die periodische Synchronisierung vom Hintergrund-Fetch?
Die periodische Synchronisierung dient dazu, Daten in regelmäßigen Abständen zu synchronisieren, während der Hintergrund-Fetch dazu dient, große Dateien oder Assets im Hintergrund herunterzuladen. Die periodische Synchronisierung wird typischerweise verwendet, um Inhalte aktuell zu halten, während der Hintergrund-Fetch verwendet wird, um Ressourcen herunterzuladen, die der Benutzer später benötigt.
Wird die periodische Synchronisierung von allen Browsern unterstützt?
Die Unterstützung für die periodische Synchronisierung entwickelt sich noch. Während sie von den meisten modernen Browsern (Chrome, Edge, Firefox, Safari) unterstützt wird, unterstützen ältere Browser oder solche mit spezifischen Datenschutzeinstellungen sie möglicherweise nicht vollständig. Überprüfen Sie immer die aktuelle Browserkompatibilität, bevor Sie die periodische Synchronisierung in Ihrer Anwendung implementieren. Progressive Enhancement-Techniken sollten verwendet werden, um einen Fallback-Mechanismus für Browser bereitzustellen, die die API nicht unterstützen.
Wie kann ich die Funktionalität der periodischen Synchronisierung testen?
Sie können die Funktionalität der periodischen Synchronisierung mithilfe der Entwicklertools des Browsers testen. In Chrome können Sie beispielsweise im Anwendungsbereich ein periodisches Synchronisierungsereignis manuell auslösen oder verschiedene Netzwerkbedingungen simulieren. Die Registerkarte „Service Workers“ ermöglicht es Ihnen, den Status des Service Workers zu überprüfen und seine Aktivität zu überwachen.
Welche Sicherheitsaspekte gibt es bei der Verwendung der periodischen Synchronisierung?
Wie jede Web-API hat auch die periodische Synchronisierung potenzielle Sicherheitsauswirkungen. Stellen Sie sicher, dass Sie nur Daten aus vertrauenswürdigen Quellen synchronisieren und dass Sie sichere Kommunikationsprotokolle (HTTPS) verwenden. Achten Sie auf den Datenschutz und halten Sie relevante Vorschriften wie GDPR und CCPA ein.
Wie bestimmt der Browser, wann die Synchronisierung tatsächlich durchgeführt werden soll?
Der Browser hat einen erheblichen Spielraum bei der Bestimmung, *wann* die Synchronisierung tatsächlich durchgeführt werden soll, selbst wenn das `minInterval` angegeben ist. Dies hängt von Faktoren wie der Benutzeraktivität, der Netzwerkkonnektivität, dem Batteriestatus und davon ab, ob die Website kürzlich interagiert wurde. Der Browser versucht, die Synchronisierungshäufigkeit für das beste Gleichgewicht zwischen Leistung, Akkulaufzeit und Benutzererfahrung zu optimieren. Sie können nicht *garantieren*, dass eine Synchronisierung genau im angegebenen Intervall stattfindet, sondern nur, dass sie nicht *früher* stattfindet.
Welche Alternativen zur periodischen Synchronisierung gibt es, wenn ich mehr Kontrolle benötige?
Während die periodische Synchronisierung Komfort bietet, benötigen Sie in bestimmten Szenarien möglicherweise mehr Kontrolle. Alternativen sind:
- WebSockets: Für Echtzeit-, bidirektionale Kommunikation zwischen Client und Server. Ideal für Apps, die sofortige Updates benötigen.
- Server-Sent Events (SSE): Für unidirektionale (Server-zu-Client) Updates. Einfacher als WebSockets für Szenarien, in denen der Client keine Daten zurücksenden muss.
- Hintergrundaufgaben (mit dedizierten Workern): Sie können einen dedizierten Web Worker oder einen Shared Worker erstellen, der Aufgaben unabhängig vom Service Worker oder dem Haupt-Thread ausführt. Dies ermöglicht die Planung benutzerdefinierter Hintergrundprozesse, erfordert jedoch eine komplexere Implementierung.
- Kombination von APIs: Die Kombination einfacherer APIs wie `fetch` mit Scheduler-Dienstprogrammen kann eine feinere Kontrolle ermöglichen.
Wie geht die periodische Synchronisierung mit verschiedenen Gerätetypen (Desktop vs. Mobil) um?
Die zugrunde liegende Browser-Implementierung behandelt die Unterschiede zwischen Desktop- und mobilen Geräten. Bei mobilen Geräten wird der Browser aggressiver vorgehen, um Akku und Bandbreite zu schonen. Daher können periodische Synchronisierungen auf mobilen Geräten seltener sein als auf dem Desktop. Berücksichtigen Sie dies bei der Gestaltung Ihrer Anwendung und wählen Sie Synchronisierungshäufigkeiten, die für beide Gerätetypen geeignet sind. Das Testen auf beiden Gerätetypen ist entscheidend.
Beispiel: Periodische Synchronisierung mit einer Fortschrittsanzeige
Um dem Benutzer anzuzeigen, dass Inhalte synchronisiert werden, können Sie eine Fortschrittsanzeige anzeigen. Hier ist ein einfaches Beispiel:
self.addEventListener('periodicsync', event => {
if (event.tag === 'content-sync') {
event.waitUntil(syncContent());
}
});
async function syncContent() {
try {
// Show progress bar
showProgressBar();
const response = await fetch('/api/content');
const total = response.headers.get('Content-Length');
let loaded = 0;
const reader = response.body.getReader();
while (true) {
const { done, value } = await reader.read();
if (done) {
break;
}
loaded += value.length;
const progress = loaded / total;
updateProgressBar(progress);
// Process the data (example: cache the chunk)
// ...
}
// Hide progress bar
hideProgressBar();
} catch (error) {
console.error('Error synchronizing content:', error);
// Handle error (e.g., retry later)
hideProgressBar();
}
}
Hinweis: Die Funktionen `showProgressBar()`, `updateProgressBar(progress)` und `hideProgressBar()` müssen in Ihrer Anwendung (wahrscheinlich in Ihrem Hauptskript) separat definiert werden. Die Verwendung von `response.body.getReader()` ermöglicht das inkrementelle Lesen der Daten und die Aktualisierung einer Fortschrittsanzeige.